<?php defined('SYSPATH') or die('No direct script access.');

class Model_Periodo extends ORM {

	public $_belongs_to = array(
		'reserva' => array(
			'model' => 'reserva',
			'foreign_key' => 'reserva_id'
		),
	);
	
	public $_has_one = array();
	
	public $_has_many = array();
	
	public $_table_name = 'periodos';
	public $_primary_key = 'id';
	
	public function ocorreChoque($inicio, $fim)
	{
		$periodoChoca = ORM::factory('periodo')
			->or_where(DB::expr('(inicio >= '.$inicio.' && inicio <= '.$fim.' && fim >= '.$fim.')'), '=', TRUE)
			->or_where(DB::expr('(inicio <= '.$inicio.' && fim >= '.$inicio.' && fim >= '.$fim.')'), '=', TRUE)
			->or_where(DB::expr('( inicio <= '.$inicio.' && fim >= '.$inicio.' && fim <= '.$fim.')'), '=', TRUE)
			->or_where(DB::expr('(inicio >= '.$inicio.' && fim <= '.$fim.')'), '=', TRUE)
			->find();
		
		if($periodoChoca->id == $this->id)
			return false;
		
		return $periodoChoca->loaded();
	}
	
	public static function geraData($data, $horario)
	{
		list($dia, $mes, $ano) = explode('/', $data);
		list($hora, $minuto) = explode(':', $horario);
		
		return mktime($hora, $minuto, 0, $mes, $dia, $ano);
	}
	
} // End Periodo
